package day12;
//a.网上购物节的时候，凌晨0点经常发生价格变化，我需要及时获取最新的价格。
//具体要求
//创建价格类`LowPrice`，定义一个价格变量`money`
//创建`Change`线程类，负责修改价格
//创建`Buy`线程类，负责低价购买，如果是原价则一直等
//创建测试类`TestVolatile`
//在测试类中同时启动两个线程
public class Home1 {
    public static void main(String[] args) {
      LowPrice lowPrice=new LowPrice(150.0);
      Change c=new Change(lowPrice);
      Buy b=new Buy(lowPrice);
      c.start();
      b.start();
    }
}
class LowPrice {//价格类
    volatile double money=150.0;
    public LowPrice(double money) {
        this.money = money;
    }
}
class Change extends Thread{//修改价格
    LowPrice lowPrice;
    public Change(LowPrice lowPrice) {
        this.lowPrice = lowPrice;
    }
    public void run() {
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        lowPrice.money=50.0;
        System.out.println("现已降价为:"+lowPrice.money);
    }
}
class Buy extends Thread{
    LowPrice lowPrice;
    public Buy(LowPrice lowPrice) {
        this.lowPrice = lowPrice;
    }
    public void run() {//低价购买 如果低价就购买 不是就一直等
        System.out.println("等待降价中......");
        if(lowPrice.money==150.0){
            System.out.println("没有降价,一直等吧");
        }else{
            System.out.println("降价成功,当前价钱为:"+lowPrice.money+"已成功购买");
        }
    }
}